package com.company.ljh.easy;
/**
 * 231.判断数是否为2的幂
 */

/**
 * @description:
 * @projectName:leet_code
 * @see:com.company.ljh.easy
 * @author:ljh
 * @createTime:2022/6/1 16:20
 * @version:1.0
 */
public class 二的幂 {
    /**
     * 数1法
     * @param n
     * @return
     */
    public boolean isPowerOfTwo(int n) {
        int size = 0;
        //1的位数，只有一个1即可
        if(n < 0){
            //负数都不算
            return false;
        }
        while(n !=0){
            if((n & 1) == 1){
                size++;
            }
            n = n >>>1;
        }
        if(size ==1){
            return true;
        }else{
            return false;
        }
    }
    /**
     * 高级法 如果n为正整数,且n&(n-1) == 0,那么n为2的幂次方
     */

}
